package com.finley.flowabledemo.design.state.demo;


/**
 * @description: 固定顺序可以实现的,可以使用状态模式优化
 * 不需要使用责任链模式,太麻烦了,状态模式简单一点,只需要改变状态即可
 * @author: xianfei.chao
 * @date 2025/5/31 22:35
 * @version: 1.0
 */
public class TestMain {

    public static void main(String[] args) {
        // 1、如果超过3000kg,则报错提示"超出重量上限无法搬运"
        Context context = new Context(new MaxWeightMatchZone());
        context.setWeight(3500);
        System.out.println(context.handler());

        // 2、当总重量大于 2000KG 且小于等于 3000KG 时，直接入油缸库 D 区
        context.setWeight(2500);
        System.out.println(context.handler());

        // 3、当长度大于 3200mm 时，提示错误（格式:物料长度为[xxxx]mm 无法匹配入库区域）
        context.setWeight(0);
        context.setLength(3500);
        System.out.println(context.handler());

        // 4、当长度大于 2900mm 且小于等于 3200mm 时，入油缸库 C 区
        context.setWeight(0);
        context.setLength(3000);
        System.out.println(context.handler());

        // 5、当长度大于 2400mm 且小于等于 2900mm 时，入油缸库 B 区
        context.setWeight(0);
        context.setLength(2600);
        System.out.println(context.handler());

        // 6、当长度大于 1000mm 且小于等于 2400mm 时，入油缸库 A 区
        context.setWeight(0);
        context.setLength(2000);
        System.out.println(context.handler());

        // 7、当长度小于 1000mm，提示错误（格式:物料长度为[xxxx]mm 无法匹配入库区域）
        context.setWeight(0);
        context.setLength(800);
        System.out.println(context.handler());
    }
}
